/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tk.eigh.ksvg.component.painting;

import java.util.HashMap;
import java.util.Map;
import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFProperty;
import tk.eigh.ksvg.SVG;
import tk.eigh.ksvg.types.SVGNumber;

/**
 *
 * @author nt
 */
public interface _FillProperties{

    final Map<String, String> INTERFACE_ATTRIBUTES = new HashMap<String, String>(0x3) {

        {
            put(SVG.FILL_PROP, SVG.FILL_PROP);
            put(SVG.FILL_RULE_PROP, SVG.FILL_RULE_ATTR);
            put(SVG.FILL_OPACITY_PROP, SVG.FILL_OPACITY_ATTR);
        }
    };
    /**
     * The ‘fill’ property paints the interior of the given graphical element.
     * The area to be painted consists of any areas inside the outline of the
     * shape. To determine the inside of the shape, all subpaths are considered,
     * and the interior is determined according to the rules associated with the
     * current value of the ‘fill-rule’ property. The zero-width geometric
     * outline of a shape is included in the area to be painted.
     *<br/>
     * The fill operation fills open subpaths by performing the fill operation
     * as if an additional "closepath" command were added to the path to connect
     * the last point of the subpath with the first point of the subpath. Thus,
     * fill operations apply to both open subpaths within ‘path’ elements (i.e.,
     * subpaths without a closepath command) and ‘polyline’ elements.
     */
    @JSFProperty
    String getFill();

    /**
     * The ‘fill-rule’ property indicates the algorithm which is to be used to
     * determine what parts of the canvas are included inside the shape. For a
     * simple, non-intersecting path, it is intuitively clear what region lies
     * "inside"; however, for a more complex path, such as a path that
     * intersects itself or where one subpath encloses another, the
     * interpretation of "inside" is not so obvious.
     */
    @JSFProperty
    String getFillRule();

    /**
     * ‘fill-opacity’ specifies the opacity of the painting operation used to
     * paint the interior the current object.
     */
    @JSFProperty
    SVGNumber getFillOpacity();
}
